package utils;


import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;

public class LocalProperties {
    private String fileName;

    private File creatProperties() throws IOException {

        File file$ = new File("./"+fileName);
        if (!file$.exists()) {
            if (!file$.createNewFile()) {
                throw new RuntimeException("创建文件失败");
            }
        }
        return file$;
    }

    public LocalProperties(String fileName) {
        this.fileName = fileName;
    }

    /**
     * 初始化配置文件
     */
    public void initProperties() throws IOException {
        File file$ = creatProperties();

        FileReader fr = new FileReader(file$);
        Properties p = new Properties();
        p.load(fr);

        FileWriter fw = new FileWriter(file$);
        try {
            p.clear();
            p.store(fw, "4.0apis.properties");
        } catch (IOException e) {
            e.printStackTrace();
        }
        fw.flush();
        fr.close();
        fw.close();
    }

    /**
     * 向配置文件中写入数据.（保存一些如session_id,user_id等数据）
     */
    public void save(String key, String value) throws IOException {

        File file = creatProperties();

        FileReader fr = new FileReader(file);

        Properties p = new Properties();
        p.load(fr);// 加载读取流中的数据
        p.setProperty(key, value);// 修改读取流中的键值。如果不存在就添加

        FileWriter fw = new FileWriter(file);
        p.store(fw, fileName);// 保存到文件
        fw.flush();

        fr.close();
        fw.close();
    }

    /**
     * 读取配置文件中的值
     */
    public String getValue(String key) throws Exception {
        String value;
        File file;
        file = creatProperties();
        FileReader fr = new FileReader(file);
        Properties p = new Properties();
        p.load(fr);

        value = p.getProperty(key);
        fr.close();
        return value;
    }
}
